package br.edu.ufcg.p1.barzin.async;

import static br.edu.ufcg.p1.barzin.util.PrefManConstants.TABLET_ID;
import static br.edu.ufcg.p1.barzin.util.PrefManConstants.TEM_CONTA;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import br.edu.ufcg.p1.barzin.App;
import br.edu.ufcg.p1.barzin.event.EventBus;
import br.edu.ufcg.p1.barzin.event.PedidoRealizadoEvento;
import br.edu.ufcg.p1.barzin.model.Pedido;
import br.edu.ufcg.p1.barzin.util.HTTPCalls;

public class RealizaPedidoTask extends AsyncTask<Pedido, Integer, Pedido> {

	@Override
	protected Pedido doInBackground(Pedido... pedidos) {

		if (pedidos.length != 1) {
			return null;
		}

		Integer tabletId = App.environment().getSharedPreferences()
				.getInt(TABLET_ID, -1);

		Pedido pedidoRealizado = HTTPCalls.realizaPedido(pedidos[0], tabletId);
		if (pedidoRealizado != null) {
			pedidoRealizado.setPessoas(pedidos[0].getPessoas());
			pedidoRealizado.setItem(pedidos[0].getItem());
			App.environment().getDao().salvaPedido(pedidoRealizado);
		}
		return pedidoRealizado;
	}

	@Override
	protected void onPostExecute(Pedido pedidoRealizado) {
		super.onPostExecute(pedidoRealizado);

		if (pedidoRealizado != null) {
			SharedPreferences.Editor editor = App.environment()
					.getSharedPreferences().edit();
			editor.putInt(TEM_CONTA, 1);
			editor.commit();

			EventBus.getInstance().publica(
					new PedidoRealizadoEvento(pedidoRealizado));
		}
	}

}
